<?php
namespace framework\driver\mysql;

use \PDO;

/**
 * PDO 连接实例管理器
 */
class Manager
{
    /**
     * 连接配置
     *
     * @var Config
     */
    private static $config;
    /**
     * 连接实例
     *
     * @var \PDO
     */
    private static $instance;

    /**
     * 添加配置
     *
     * @param Config $config
     */
    public static function addConfig(Config $config)
    {
        self::$config = $config;
    }

    /**
     * 获取连接实例
     *
     * @return \PDO
     */
    public static function getInstance()
    {
        if (empty(self::$instance))
        {
            if (empty(self::$config))
            {
                return null;
            }

            self::$instance = new \PDO(
                'mysql:host=' . self::$config->host . ';port=' . self::$config->port . ';dbname=' . self::$config->lib,
                self::$config->user,
                self::$config->pass,
                array(
                     PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES '" . self::$config->charset . "';",
                     PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
                )
            );
        }

        return self::$instance;
    }
}